---
title: 소개
---

import { Callout } from "nextra-theme-docs";
import { Demo } from "../../../components/Demo";
import { CurrentDate } from "../../../components/CurrentDate";

# 소개

**Stackflow**는 모바일 디바이스(iOS/Android 등)에서 주로 활용되는 Stack Navigation UX를 JavaScript 환경에서 구현하고, 이를 통해 하이브리드 앱과 웹뷰 개발을 쉽게 할 수 있도록 돕는 프로젝트에요.

- 화면을 쌓고 스크롤을 유지해요.
- 화면이 쌓이는 전환효과와 뒤로가기 시 화면이 사라지는 전환효과를 지원해요.
- iOS 스타일의 스와이프백을 통한 뒤로가기 동작을 지원해요.
- 전환되는 화면에 필요한 파라미터를 전달해요.

### 커스터마이징
stackflow는 UI 없이 스택 및 전환에 대한 상태만 따로 사용할 수 있어요. 원하는 입맛대로 UI를 뜯어서 사용할 수 있어요.

플러그인 인터페이스를 통해 원하는 추가 확장을 라이프사이클 사이에 주입할 수 있어요.

### 다양한 플랫폼과의 통합
코어 로직과 통합 레이어가 분리되어 있어서, 다양한 프론트엔드 프레임워크와 통합할 수 있어요. 
렌더 로직과 UI를 외부에서 주입 할 수 있어서, 한 코드베이스에서 모바일 웹뷰와 데스크탑 개발을 동시에 할 수 있어요.

### 서버사이드 렌더링, 타입스크립트
`ReactDOMServer.renderToString`을 지원해요. stackflow는 모든 함수에 대해서 타입 정의를 제공하고 있어요.

<Callout emoji="💡">
  <CurrentDate locale="ko" /> 시점에서는 React와 React DOM까지 레퍼런스로 지원하고 있어요.
</Callout>

